Data processing operations frequently involve transfers of data between endpoints, whereby a data source provides the data for transfer and a data sink subsequently receives the data. A memory device is typically employed to temporarily store the transferring data between the data source and data sink. However, the transfer and storage of the data at the memory device can introduce errors in the data. For example, a faulty memory module can cause bits of the data to be represented at the memory device in an incorrect state. Accordingly, some data processing systems employ error correction techniques whereby error correction code (ECC) checkbits are calculated for each segment of data stored at the memory device. In response to a request to transfer data from the memory to a data sink, the ECC checkbits stored in the memory are used to detect and correct errors in the stored data. However, in certain data processing systems, the memory device does not detect errors in the data that result from the transfer of data to the processor unit. Accordingly some data processing devices employ end-to-end (e2e) error detection and correction, whereby ECC checkbits are generated at the data source and error detection is performed at the data sink. This allows for detection and correction of errors resulting both from temporary storage of data as well as errors resulting from data transfer.